//
//  RDBloodSugarTool.m
//  ReverseDiabetes
//
//  Created by 王佩璇 on 2024/8/31.
//

#import "RDBloodSugarTool.h"

@implementation RDBloodSugarTool
//　　血糖监测的七个点及大致的控制标准：
//
//　　1、空腹血糖：4.4-7mmol/l，一般清晨6-8点；
//
//　　2、早餐后2小时：上午9点半到10点半，不超过10mmol/l，略高于空腹血糖值：
//
//　　3、午餐前：上午11点半到12点，4.4-7mmol/l；
//
//　　4、午餐后2小时，下午1点半到2点半，不超过10mmol/l，略高于餐前；
//
//　　5、晚餐前，下午5点半到6点，4.4-7mmol/l；
//
//　　6、晚餐后2小时，晚7点半到8点半，不超过10mmol/l，略高于餐前；
//
//　　7、睡前，晚上9点到10点，6-10mmol/l之间。
+(RDBloodSugarTag *)getTagByHour:(NSNumber *)hour andMinute:(NSNumber *)minute{
    int time = hour.intValue*100 + minute.intValue;
    
    NSMutableArray *tagArr = [[RDBloodSugarTagDBManager sharedManager] getAllTag];
    
    if (time >= 600 && time<900) {
        return tagArr[0];
    }else if (time >= 930 && time<1030){
        return tagArr[1];
    }else if (time >= 1130 && time<1200){
        return tagArr[2];
    }else if (time >= 1330 && time<1430){
        return tagArr[3];
    }else if (time >= 1730 && time<1800){
        return tagArr[4];
    }else if (time >= 1930 && time<2030){
        return tagArr[5];
    }else if (time >= 2100 && time<2300){
        return tagArr[6];
    }else if (time >= 2300 || time<300){
        return tagArr[7];
    }else{
        return tagArr[8];
    }
}


+(RDBloodSugarTag *)getTagById:(NSNumber *)tag_id{
    RDBloodSugarTag *model = [[RDBloodSugarTag alloc]init];
    NSMutableArray *tagArr = [[RDBloodSugarTagDBManager sharedManager] getAllTag];
   
    for (RDBloodSugarTag *tag in tagArr) {
        if (tag.tag_id.intValue == tag_id.intValue) {
            model = tag;
            break;
        }
    }
    
    return model;
}

//通过血糖值返回当前状态
+(int)getStateByBloodSugar:(RDBloodSugar *)model{
    
    CGFloat blood_sugar_value = [model.blood_sugar_value floatValue];
    
    //0良好，1低血糖，2高血糖
    int state = 0;
    
    switch (model.blood_sugar_tag.intValue) {
        case 1:{
            //空腹血糖：4.4-7mmol/l，一般清晨6-8点；
            
            if (blood_sugar_value < 4) {
                state = 1;
            }else if (blood_sugar_value > 7.1){
                state = 2;
            }
        }
            break;
        case 2:{
            if (blood_sugar_value > 11.1){
                state = 2;
            }
        }
            
        default:
            break;
    }
    
    
    
    return state;
}


+(NSString *)getStateNameBytype:(int)state{
    switch (state) {
        case 0:
            {
                return @"良好";
            }
            break;
        case 1:{
            return @"低血糖";
        }
        case 2:{
            return @"高血糖";
        }
            
        default:
            return @"未知";
            break;
    }
}

@end
